#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : test.py
# @Author: OpenHair
# @Date  : 2022/12/3
# @Desc  :
# @Contact : 674514904@qq.com

import asyncio, time
from pyppeteer import launch
import pyppeteer

print(pyppeteer.__chromium_revision__)  # 查看版本号
print(pyppeteer.executablePath())  # Chromium应该在的路径
import pyppeteer.chromium_downloader
# 这里的 linux 替换成你系统的版本，win32，win64，linux
# 这个是返回在当前系统下chromium的路径
# print(pyppeteer.chromium_downloader.chromiumExecutable.get("linux"))
# # 这个是返回当前系统默认的下载地址
# print(pyppeteer.chromium_downloader.downloadURLs.get("linux"))
# exit()

async def main():
    # browser = await launch(headless=True, executablePath=executablePath, dumpio=True, autoClose=False,
    #                        args=['--no-sandbox', '--window-size=1920,1080', '--disable-infobars'])   # 进入有头模式
    browser = await launch(headless=True,options={'args': ['—-no-sandbox']})
    page = await browser.newPage()           # 打开新的标签页
    await page.setViewport({'width': 1920, 'height': 1080})      # 页面大小一致
    await page.goto('https://www.baidu.com') # 访问主页

    # evaluate()是执行js的方法，js逆向时如果需要在浏览器环境下执行js代码的话可以利用这个方法
    # js为设置webdriver的值，防止网站检测
    await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')
    # await page.screenshot({'path': './1.jpg'})   # 截图保存路径

    page_text = await page.content()   # 获取网页源码
    print(page_text)
    time.sleep(1)
    await page.close()
asyncio.get_event_loop().run_until_complete(main()) #调用
